/**
 *   @file cppflibinc.h
 *
 *   If possible, include this file in a precompiled header file.
 */
#ifndef _CPPFLIBINC_H_
#define _CPPFLIBINC_H_

#include "common/MemReleasePool.h"
#include "common/BaseObject.h"
#include "common/CppMemPool.h"
#include "common/DLHook.h"
#include "common/CppflibMain.h"
#include "common/UtilFuncT.h"
#include "common/ObjPtrT.h"

#include "exceptions/BaseException.h"
#include "exceptions/ArgumentException.h"
#include "exceptions/OverflowException.h"
#include "exceptions/OutOfBoundsException.h"
#include "exceptions/ApplicationException.h"
#include "exceptions/RuntimeException.h"

#include "text/CFString.h"
#include "text/UTFCharConv.h"

#include "collections/ArrayT.h"
#include "collections/ListT.h"
#include "collections/HashtableT.h"
#include "collections/QueueT.h"
#include "collections/StackT.h"
#include "collections/BinBuf.h"
#include "collections/CircularBuffer.h"
#include "collections/LinkedHashtableT.h"
#include "collections/KVPairT.h"
#include "collections/KeyValueListT.h"

#include "collections/tree/TreeNode.h"
#include "collections/tree/BinTree.h"
#include "collections/tree/AvlTreeNode.h"
#include "collections/tree/AvlTree.h"
#include "collections/tree/MCTreeNode.h"
#include "collections/tree/MultiChildTree.h"

#include "collections/sort/SortAlgorithm.h"

#include "threading/Thread.h"
#include "threading/SyncLock.h"
#include "threading/SyncWrap.h"
#include "threading/Semaphore.h"
#include "threading/SemaphoreErrException.h"
#include "threading/Event.h"
#include "threading/ThreadPool.h"

#include "os/Process.h"
#include "os/FileSys.h"
#include "os/debug/Debug.h"

#include "lang/Primitive.h"
#include "lang/enumT.h"
#include "lang/IntCheck.h"

#include "convert/Convert.h"
#include "convert/Base64.h"
#include "convert/QuotedPrintable.h"

#include "io/Stream.h"
#include "io/FileStream.h"
#include "io/MemoryStream.h"
#include "io/IOException.h"
#include "io/BufferedReadStream.h"
#include "io/Reader.h"
#include "io/StreamReader.h"
#include "io/BufferedReader.h"
#include "io/Writer.h"
#include "io/StringWriter.h"
#include "io/StreamWriter.h"

#include "util/DateTime.h"
#include "util/DateTimeEnum.h"
#include "util/TimeDuration.h"
#include "util/AtomicOperations.h"
#include "util/CmdLineParser.h"
#include "util/Random.h"
#include "util/BitAttributeT.h"
#include "util/FuncPtrT.h"
#include "util/zip/Deflater.h"
#include "util/zip/Inflater.h"

#include "net/Socket.h"
#include "net/SocketFactory.h"
#include "net/SocketException.h"
#include "net/SocketStream.h"
#include "net/IPCSocket.h"

#include "net/ssl/SSLCallbacks.h"
#include "net/ssl/SSLContext.h"
#include "net/ssl/SSLException.h"
#include "net/ssl/SSLSocketException.h"
#include "net/ssl/SSLServerSocket.h"
#include "net/ssl/SSLSocket.h"
#include "net/ssl/SSLSocketFactory.h"

#include "net/http/message/IHttpBody.h"
#include "net/http/util/HttpUtility.h"
#include "net/http/HttpConst.h"
#include "net/http/HttpParams.h"
#include "net/http/HttpException.h"
#include "net/http/HttpMessage.h"
#include "net/http/HttpRequest.h"
#include "net/http/HttpResponse.h"
#include "net/http/HttpEndPoint.h"
#include "net/http/HttpClient.h"
#include "net/http/HttpServer.h"
#include "net/http/HttpServerEndPoint.h"

#include "security/cert/X509Certificate.h"
#include "security/crypto/MessageDigest.h"
#include "security/crypto/SymmetricCipher.h"

#include "database/SQLStr.h"
#include "database/SQLStrException.h"
#include "database/sqlite/SQLiteDatabase.h"
#include "database/sqlite/SQLiteCommand.h"
#include "database/sqlite/SQLiteCursor.h"
#include "database/sqlite/SQLiteTransaction.h"
#include "database/sqlite/SQLiteBlobIO.h"
#include "database/sqlite/SQLiteException.h"

#include "xml/sax/SAXHandler.h"
#include "xml/sax/SAXParser.h"
#include "xml/sax/SAXException.h"
#include "xml/dom/Document.h"
#include "xml/dom/Node.h"
#include "xml/dom/DOMException.h"
#include "xml/writer/XmlWriter.h"
#include "xml/writer/XmlWriterSettings.h"
#include "xml/writer/XmlWriterException.h"

#include "json/JSONHandler.h"
#include "json/JSONQuickParser.h"
#include "json/JSONException.h"
#include "json/JSONNode.h"
#include "json/JSONDocument.h"
#include "json/JSONWriter.h"

/******* convenient declarations ********/

#define FMP_NEWCLASS cppflib::cppmempool::NEWCLASS
#define FMP_NEWPTR cppflib::cppmempool::NEWPTR



#endif
